LuCloud 4 Q & A What is Intel VT?

LuCloud 4 Q & A What is Intel VT?

五月 05, 2019

cover

什么是Intel VT?
![dov](https://lucaszhao-1258906334.cos.ap-guangzhou.myqcloud.com/dov/dov-curious.gif)

Overview

早期的虚拟化工作依赖于软件仿真/模拟来取代硬件功能。但软件仿真可能是一个缓慢而低效的过程。由于许多虚拟化任务是通过软件处理的,因此VM行为和资源控制通常较差,导致服务器上的VM性能不可接受。

处理器缺乏内部微代码来处理硬件中的密集型虚拟化任务。为解决纯软件虚拟化解决方案在可靠性、安全性和性能上的不足,Intel(Intel VT)和AMD(AMD V)都通过创建处理器扩展来解决这个问题,这些扩展可以从软件中卸载重复性和低效率的工作。通过处理器扩展,陷阱和虚拟化仿真处理这些任务,基本上消除了通过操作系统执行的任务,大大提高了物理服务器上的VM性能。

Intel VT(虚拟化技术)是Intel公司为运行虚拟化平台的处理器提供的硬件辅助。Intel VT包括一系列硬件虚拟化扩展:

  • Intel VT-x——针对IA-32Intel 64处理器的虚拟化技术。为各种英特尔处理器增加了迁移,优先级和内存处理功能;
  • Intel VT-i——针对Itanium处理器的虚拟化技术;
  • Intel VT-d——针对直接I / O访问的虚拟化技术。为英特尔芯片组增加了虚拟化支持,可以将特定的I / O设备分配给特定的虚拟机(VM);
  • Intel VT-c——针对网络连接的虚拟化技术。为I / O设备(如网络交换机)带来更好的虚拟化支持。

Details

Intel VT-x

Intel在32位与64位x86架构下的虚拟化拓展技术。

Intel VT-x可以让一个CPU工作起来像多个CPU在并行运行,从而使得多个操作系统在一台主机上同时运行。能够降低(甚至消除)多个虚拟机操作系统之间的资源争夺和限制,从硬件上极大地改善虚拟机的安全性和性能,有助于提高基于软件的虚拟化解决方案的灵活性与稳定性。

Intel VT-x是硬件协助式虚拟化hardware-assisted virtualization的一个实例:

  • 其为x86处理器增加了特权模式级privilege mode level(Ring -1),被称为VMX Root Mode。保证客户操作系统将自身视为以完全特权模式(Ring 0)运行,VMM在Ring -1运行,使得所有特权指令和敏感指令在VMM中自陷/封闭;

  • 并增加了"vmx"功能标志,其代表Virtual Machine Extensions,增加了10条新指令:VMPTRLD,VMPTRST,VMCLEAR,VMREAD,VMWRITE,VMCALL,VMLAUNCH,VMRESUME,VMXOFF和VMXON。这些指令允许进入和退出虚拟执行模式,并分配内存页以维持CPU状态。

主要支持以下特性/拓展:

  • FlexPriority灵活优先级:通过提升中断处理能力来优化虚拟化软件效率。

    当处理器执行任务时,往往会收到其它设备或应用发出的请求或“中断”命令。为了最大程度减少对性能的影响,处理器内的一个寄存器(TPR)专用来监控任务优先级,只有优先级高于当前运行任务的请求或“中断”才被及时处理。

  • FlexMigration灵活迁移:通过虚拟机动态迁移来优化性能、成本、功耗和可靠性,提升灵活性。

    虚拟化能够在无需停机的情况下,将运行中的虚拟机在物理服务器之间进行迁移(动态迁移)。借助此项技术,管理程序能够在迁移池内的所有服务器中建立一套一致的指令,实现工作负载的无缝迁移。需注意的是,在不同厂商、不同型号的处理器之间迁移,可能由于指令集不同而出现故障或问题。

  • Extended Page Tables(EPT)扩展页表:通过拓展页表降低实现内存虚拟化的难度,提升内存虚拟化的性能。

    扩展页表技术使用一组单独的页表(EPT)将客户物理地址转换为用于访问内存的主机物理地址,这样可以允许客户OS修改其自己的页表并直接处理页面错误。

Intel VT-i

Intel在IA-64架构(Itanium处理器)下的虚拟化拓展技术。和Intel VT-x类似。

Intel VT-d

支持直接I/O访问的Intel VT虚拟化技术。

如果每台服务器上部署更多的虚拟机,虚拟机数据进出系统的I/O流量就会增加并且更趋复杂。如果没有硬件支持,VMM必须直接参与每项I/O操作,不仅会减缓数据传输速度,还会由于VMM的频繁活动而增大服务器处理器的负载。这就如同在一个繁忙的停车场,每位车主都不得不通过独一的进出口,并且只由独一的门卫放行。这样不仅会耽误车主的时间,也会使门卫工作紧张无法处理其他事务。英特尔芯片组的Intel VT-d技术可以出色地解决上述问题。

Intel VT-d通过VMM将特定I/O设备安全分配给特定虚拟机来实现,从而减少VMM参与管理I/O流量的工作,不但加速了数据传输,而且消除了大部分的性能开销。每个I/O设备在系统内存中都有一个专用区域,只有该I/O设备及分配到该设备的虚拟机才能对该内存区域进行访问。

VMM完成初始分配之后,数据即可直接在虚拟机与为其分配的I/O设备之间进行传输。这样,就加快了I/O的流动,减少VMM活动及服务器处理器的负载。此外,由于特定设备或虚拟机的I/O数据内存区不能被其它硬件或虚拟机访问,系统的安全性与可用性也得到了增强。

Intel VT-c

支持网络连接的Intel虚拟化技术。

随着企业在虚拟化环境中部署越来越多的应用,并利用实时迁移来均衡负载或提升可用性,对虚拟化I/O设备的要求也在显著提高。通过将广泛的硬件辅助特性集成到I/O设备(该设备用于保持服务器与数据中心网络、存储基础设施及其它外部设备的连接)中,Intel VT-c可针对虚拟化进一步优化网络。这套技术组合的功能与邮局非常相似:将收到的信件、包裹分门别类,然后投递到各自的目的地。Intel VT-c在专用网络芯片上执行这些功能,大幅提高了交付速度,减少了VMM与服务器处理器的负载。Intel VT-c包括以下两项关键技术(当前所有的英特尔万兆服务器网卡及千兆服务器网卡均支持)。

  • 虚拟机设备队列(VMDq):最大限度提高I/O吞吐率。在传统服务器虚拟化环境中,VMM必须对每个单独的数据包进行分类,并将其发送到相应的虚拟机。这样会占用大量的处理器周期。而借助VMDq,该分类功能可由英特尔服务器网卡内的专用硬件来执行,VMM只需负责将预分类的数据包组发送到相应的虚拟机。这将降低I/O延迟,使处理器获得更多的可用周期来处理业务应用。Intel VT-c可将I/O吞吐量提高一倍以上,使虚拟化应用达到接近物理服务器的吞吐率。

  • 虚拟机直接互连(VMDc):大幅提升虚拟化性能。VMDc支持虚拟机直接访问网络I/O硬件,从而显著提升虚拟机性能。如:通过单个英特尔万兆服务器网卡,可为10个虚拟机中的每个虚拟机分配一个受保护的、1Gb/s的专用链路。这些通信链路直接绕过了VMM交换机,进一步提升了I/O性能并减少服务器处理器的负载。

Sources